/**
 * Copyright (c) 2019 xstgongyi.org
 * All rights reserved.
 */
package org.xstgongyi.eduaid.service;

import java.util.List;

import org.xstgongyi.eduaid.dataobject.StudentBankAccountDO;
import org.xstgongyi.eduaid.dataobject.StudentDO;

/**
 * @author oldcrane<br/>
 * @created 2019-04-11
 */
public interface StudentService {

	/**
	 * 为学生添加一个新的银行账号
	 */
	void insertBankAccount(StudentBankAccountDO bankAccount);

	/**
	 * 修改学生的银行账户信息。如果银行账户曾经接收过助学金，则需要创建一个新的银行账号，并设置其为学生的当前账号，旧的银行账号设置为停止使用。
	 */
	void updateBankAccount(StudentBankAccountDO bankAccount);

	StudentBankAccountDO getBankAccountById(int bankAccountId);

	/**
	 * 登记新的学生信息。需要根据学生所在的项目、登记（开始资助）的学期，自动生成学生编号。
	 */
	void insertStudent(StudentDO student);

	void updateStudent(StudentDO student);

	StudentDO getStudentById(Integer studentId);

	// TODO 获取学生列表的接口，有待仔细设计，先实现一个以跑通功能
	List<StudentDO> listByProject(int projectId);

	List<StudentDO> listAll();

	List<StudentDO> listPage(int pageNumber, int pageSize, int projectId, String status, String keyword);
	
	int countTotal(int projectId, String status, String keyword);
	
    String exportStudentPDF(Integer studentId);

}
